﻿#ifndef SOCKET_H
#define SOCKET_H

extern "C" {
#include <stdio.h>
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <pthread.h>
}
#include <iostream>
#include <string>

using namespace std;

#define SERVER_PORT 8000            // 服务器端口
#define SERVER_IP "139.224.247.174" // 服务端公网IP

// 消息类型
#define LOGIN 1      // 登录
#define COMMODITY 2  // 商品数据
#define ORDER 3      // 订单提交
#define QUIT 4       // 登出
#define EXIT 5       // 退出
#define AMOUNT 6     // 修改库存

class Socket {
  private:
    int clientFd;
  public:
    Socket();
    int initSocket();
    static Socket *getSocket() {
        static Socket socket;
        return &socket;
    }
    void sendMsg(string &buf);  // 发送一条数据给服务器
    void readMsg(string &buf);  // 从服务器接收一条数据
};

#endif // SOCKET_H
